#include <iostream>

#include <amo/uuid.hpp>

#include <gtest/gtest.h>


TEST(uuid, constructor) {
    amo::uuid uuid1;
    amo::uuid uuid2(uuid1);
    amo::uuid uuid3(uuid2.to_string());
    amo::uuid uuid4 = amo::uuid::generate_uuid();
    ASSERT_EQ(uuid1, uuid2);
    ASSERT_EQ(uuid3, uuid2);
    ASSERT_NE(uuid3, uuid4);
}

TEST(uuid, nil) {
    ASSERT_EQ(amo::uuid::nil().to_string(),
              "00000000-0000-0000-0000-000000000000");
}

TEST(uuid, to_string) {
    amo::uuid uuid1;
    amo::uuid uuid2(uuid1);
    amo::uuid uuid3;
    std::cout << uuid1.to_string() << std::endl;
    ASSERT_EQ(uuid1.to_string(), uuid2.to_string());
    ASSERT_NE(uuid1.to_string(), uuid3.to_string());
}